package com.snail.app.gather.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * @description 数据同步触发条件
 * @date 2021/8/9
 * @autor houyanfeng
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
@Entity
@Table(name = "datasync_trigger_info")
public class DataSyncTriggerInfo implements Serializable {

    @EmbeddedId
    private DataSyncTriggerInfoId id;//关键标识
    private Integer onoff;//是否启动 1-是；0-否
    @Column(length = 12, nullable = false)
    private String sendPathId;//发送目标地址主键ID
    @Column(length = 20)
    private String gatherDbId;//采集数据库配置主键
    @Column(length = 12)
    private String org;//区域标识
    @Column(length = 20)
    private String tableName;//数据库表名
    @Column(length = 20)
    private String field;//触发字段
    @Column(length = 20)
    private String mode;//触发方式，自增主键，时间；
    @Column(length = 30)
    private String data;//触发关键数据存储；主键；修改时间等数值
    @Column(length = 200)
    private String queryField;//此项有值时，只查询此字段内容。拼接查询中没有 *
    /** 当查询表不是操作表时，此处写查询表。比如查询日志表获取删除信息，然后操作商品表
     *  此时，tableName写商品表名，fromTable写日志表名
     *  不写，则默认查询与操作同表*/
    @Column(length = 50)
    private String fromTableName;
    @Column(length = 200)
    private String joinSql;//左右关联sql
    private Integer isRelevancy;//是否有需要关联同步的数据 1-是；0-否，有则从关联表查询数据 同步发送,暂未启用
    @Column(length = 160)
    private String sqlConditions;//查询条件后附带的条件， 如商品不同步代码93,95,99开头的数据
    private Date lastSyncTime;//上次同步时间
    private Integer sort;//排序
    @Column(length = 30)
    private String remark;

}
